{
 "cells": [
  {
   "cell_type": "code",
<<<<<<< HEAD
   "execution_count": 43,
=======
   "execution_count": 31,
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import random \n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt \n",
    "\n",
    "def distance(point1, point2):  # 计算距离（欧几里得距离）\n",
    "    return np.sqrt(np.sum((point1 - point2) ** 2))\n",
    "\n",
    "def k_means(data, k, max_iter=10000):\n",
    "    centers = {}  # 初始聚类中心\n",
    "    # 初始化，随机选k个样本作为初始聚类中心。 random.sample(): 随机不重复抽取k个值\n",
    "    n_data = data.shape[0]   # 样本个数\n",
    "    print(n_data)\n",
    "    for idx, i in enumerate(random.sample(range(n_data), k)):\n",
    "        # idx取值范围[0, k-1]，代表第几个聚类中心;  data[i]为随机选取的样本作为聚类中心\n",
    "        centers[idx] = data[i]  \n",
    "\n",
    "    # 开始迭代\n",
    "    for i in range(max_iter):  # 迭代次数\n",
    "        print(\"开始第{}次迭代\".format(i+1))\n",
    "        clusters = {}    # 聚类结果，聚类中心的索引idx -> [样本集合]\n",
    "        for j in range(k):  # 初始化为空列表\n",
    "            clusters[j] = []\n",
    "            \n",
    "        for sample in data:  # 遍历每个样本\n",
    "            distances = []  # 计算该样本到每个聚类中心的距离 (只会有k个元素)\n",
    "            for c in centers:  # 遍历每个聚类中心\n",
    "                # 添加该样本点到聚类中心的距离\n",
    "                distances.append(distance(sample, centers[c])) \n",
    "            idx = np.argmin(distances)  # 最小距离的索引\n",
    "            clusters[idx].append(sample)   # 将该样本添加到第idx个聚类中心\n",
    "            \n",
    "        pre_centers = centers.copy()  # 记录之前的聚类中心点\n",
    "\n",
    "        for c in clusters.keys():\n",
    "            # 重新计算中心点（计算该聚类中心的所有样本的均值）\n",
    "            centers[c] = np.mean(clusters[c], axis=0)\n",
    "  \n",
    "        is_convergent = True\n",
    "        for c in centers:\n",
    "            if distance(pre_centers[c], centers[c]) > 1e-8:  # 中心点是否变化\n",
    "                is_convergent = False\n",
    "                break\n",
    "        if is_convergent == True:  \n",
    "            # 如果新旧聚类中心不变，则迭代停止\n",
    "            break\n",
    "    return centers, clusters\n",
    "\n",
    "def predict(p_data, centers):  # 预测新样本点所在的类\n",
    "    # 计算p_data 到每个聚类中心的距离，然后返回距离最小所在的聚类。\n",
    "    distances = [distance(p_data, centers[c]) for c in centers]  \n",
    "    return np.argmin(distances)    "
   ]
  },
  {
   "cell_type": "code",
<<<<<<< HEAD
   "execution_count": 44,
=======
   "execution_count": 32,
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "199\n",
      "开始第1次迭代\n",
      "开始第2次迭代\n",
      "开始第3次迭代\n",
      "开始第4次迭代\n",
      "开始第5次迭代\n",
<<<<<<< HEAD
      "开始第6次迭代\n",
      "开始第7次迭代\n",
      "开始第8次迭代\n",
      "开始第9次迭代\n",
      "开始第10次迭代\n"
=======
      "开始第6次迭代\n"
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
     ]
    }
   ],
   "source": [
<<<<<<< HEAD
    "data_full = pd.read_csv(\"test.csv\")\n",
    "data = np.array(data_full)\n",
=======
    "# data = np.random.randint(0,100,size=(100,2))\n",
    "data_full = pd.read_csv(\"test.csv\")\n",
    "columns = list(data_full.columns)\n",
    "# 提取需要聚类的数据（根据列名提取前四列）\n",
    "data = data_full[columns]\n",
    "data = np.array(data)\n",
    "data\n",
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
    "centers , clusters = k_means(data,3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
<<<<<<< HEAD
   "execution_count": 45,
=======
   "execution_count": 33,
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
   "metadata": {},
   "outputs": [],
   "source": [
    "# clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n"
     ]
    },
    {
     "data": {
<<<<<<< HEAD
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
=======
      "text/plain": [
       "Text(0.5,1,'k-means')"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIEAAARuCAYAAABEJCeWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3X+M5f9eF/bn+9wdAyfIQHO/0FvknOMPmmJdCmZCSFpLdKiRppuircbmtKWJ9hTTNn5TWhXOH7CtJ1pbYdI0bTyWJqR+FBFJdLCN4ooGkWBmFZjCNRF1zojeci/inQscgeXuu3+c3f1+Z3fmOz925vz6PB7JN589rz2zn9fszsx35nne79e71FoDAAAAwHbrrLoBAAAAAO6fEAgAAACgBYRAAAAAAC0gBAIAAABoASEQAAAAQAsIgQAAAABaQAgEAGycUspJKeWrVt0HAMAmEQIBAAAAtIAQCAAAAKAFhEAAwEYrpfxrpZR/VEr53Rf83jeXUv5cKeVPlVJ+tpRyXEr5V0sp31BK+Xgp5R+XUn7r+56/W0r5tlLKx0op/6SU8odLKR968Xu/tpTy10op/6yU8tOllKaU8jnve9uTUsp/W0r50VLKWSnlz5ZSPuPF7324lPI9pZRPllJ+ppTy/aUU34cBAEvlmw8AYGOVUn5jkr+S5L+utX7HJU97lOT/SvK5Sf5ukr+cxfdAX5Dkv0/yJ9733G9P8stJfl2SL0vyW5P83pe3S/JHkvwrSb44yRcm+ebX7vW7kvy2JL86yZck+c9e1L8+yU8meSfJ5yf5xiT1Zu8tAMDbEQIBAJvqNyX5i0m+ttb6PR/wvO+vtf7lWusvJ/lzWQQxf7TW+izJdyQZlFI+p5Ty+Um+Osm7tdafr7V+PMm3JvndSVJr/Yla6/fWWn+x1vqJJN+S5Ctfu9f/Umv9p7XWn0lymORLX9SfJflIkn6t9Vmt9ftrrUIgAGCphEAAwKb6uiR/q9b6fUlSShmWUn7uxX//z/ue91Pv+/W/SPLTtdZPv+9xknxWkn6SnSQfe7Ft65NZrBL6vBd//ueVUr7jxTaxTyX5U0k+/FpP/9/7fj1/8ecmyf+U5CeS/JVSyj8spfyht3i/AQBuRQgEAGyqr0vSK6V8a5LUWpta62e9+O+rb/Hn/eMkv5jkw7XWz3nx32fXWv/1F7//R7LYwvUltdbPTvIfZ7FF7Eq11p+ttX59rfXXZLE97b8ppezfokcAgFsTAgEAm+pns5i/82+XUv7o2/5htdaPZTFf6I+XUj67lNJ5MQz65ZavX5nk55J8spTyBUn+u+v+2aWUf6+U8utKKSXJp5J8+sV/AABLIwQCADZWrfWTSf6dJF9dSvkf7uCP/E+T/IokP57knyf5rixm+STJ4yS/MclZkr+U5Ltv8Od+UZK/mkWI9INJ/rda61+/g34BAK6tmEkIAAAAsP2sBAIAAABoASEQAAAAQAsIgQAAAABaQAgEAAAA0AJCIAAAAIAWeLDMm334wx+ug8FgmbcEAAAA2GpPnz796VrrO1c9b6kh0GAwyNHR0TJvCQAAALDVSimz6zzPdjAAAACAFhACAQAAALSAEAgAAACgBYRAAAAAAC0gBAIAAABoASEQAAAAQAsIgQAAAABaQAgEAAAA0AJCIAAAAIAWEAIBAAAAtIAQCAAAAKAFhEAAAAAALSAEAgAAAGgBIRAAAABACwiBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAAC0gBAIAAAAoAWEQAAAAAAtIAQCAAAAaAEhEAAAAEALCIEAAAAAWkAIBAAAANACQiAAAACAFhACAQAAALSAEAgAAACgBYRAAAAAAC0gBAIAAABoASEQAAAAQAsIgQAAAABaQAgEAAAA0AJCIAAAAIAWEAIBAAAAtIAQCAAAAKAFhEAAAAAALSAEAgAAAGgBIRAAAABACwiBAAAAAFrgyhColPIZpZS/XUr5kVLKj5VSHr+o/+pSyg+VUv5+KeXPllJ+xf23CwAAAMBtXGcl0C8m+S211n8jyZcm+W2llK9I8j8m+dZa6xcl+edJfs/9tQkAAADA27gyBKoLP/fi4c6L/2qS35Lku17Uvz3J19xLhwAAAAC8tWvNBCqlfKiU8sNJPp7ke5P8gySfrLX+8oun/GSSL7jkbUellKNSytEnPvGJu+gZAAAAgBu6VghUa/10rfVLk/yqJF+e5Isvetolbzutte7VWvfeeeed23cKAAAAwK3d6HSwWusnk/z1JF+R5HNKKQ9e/NavSvJP77Y1AAAAAO7KdU4He6eU8jkvfv2ZSb4qyUeTfF+S//DF0742yV+4ryYBAAAAeDsPrn5KPpLk20spH8oiNPrOWuv3lFJ+PMl3lFL+cJK/m+Tb7rFPAAAAAN7ClSFQrfVHk3zZBfV/mMV8IAAA7kBz3GT8ZJzTs9P0dnuZ7E8yfDhcdVsAwJa4zkogAADuWXPcZHQ4yvzZPEkyO5tldDhKEkEQAHAnbjQYGgCWqTluMjgYpPO4k8HBIM1xs+qW4N6Mn4xfBUAvzZ/NM34yXlFHAMC2EQIBsJZeroqYnc1SU1+tihAEsa1Oz05vVKdlmiYZDJJOZ3FtfC28N/6ugS0mBAJgLVkVQdv0dns3qtMiTZOMRslsltS6uI5Gwon74O8a2HJCIADWklURtM1kf5LuTvdcrbvTzWR/sqKOWBvjcTI/H4pnPl/UuVv+roEtJwQCYC1ZFUHbDB8OM300TX+3n5KS/m4/00dTQ6FJTi8Jvy+rc3v+roEt53QwANbSZH9y7qSkxKoItt/w4VDow5t6vcW2pIvq3C1/18CWsxIIgLVkVQTAC5NJ0j2/VTDd7qLO3bqPv2uDpoE1UmqtS7vZ3t5ePTo6Wtr9AABgKzTNYi7N6eliVcpkkgyF4vfiLv+uXw6afv+coW43mU79+wF3qpTytNa6d+XzhECwPZrjJuMn45yenaa328tkf2LVBADAqgwGF28v6/eTk5NldwPbR0D+ynVDIDOBYEs0x825+Smzs1lGh6MkEQQBAKyCQdNwf15faTebLR4nrQ2CrsNMINgS4yfjcwN0k2T+bJ7xE0eaAgCsxGUDpQ2ahrc3Hp/fapksHo/9/PNBhECwJU7PLn5F6bI6AAD3zFBvuD9W2t2KEAi2RG/34leULqsDAHDPhsPFEOh+PyllcTUUGu6GlXa3IgSCLTHZn6S7c/6Vpu5ON5N9rzQBAKzMcLgYAv38+eIqAIK7YaXdrQiBYEsMHw4zfTRNf7efkpL+bj/TR1NDoQEAgO1jpd2tOCIeAAAAYINd94h4K4EAAAAAWkAIBAAAANACQiAAAACAFhACAQAAALSAEAgAAACgBYRApDluMjgYpPO4k8HBIM1xs+qWAAAAgDv2YNUNsFrNcZPR4SjzZ/MkyexsltHhKEkyfDhcZWsAAADAHbISqOXGT8avAqCX5s/mGT8Zr6gjAAAA4D4IgVru9Oz0RnUAuA5bjQEA1o8QqOV6u70b1QHgKi+3Gs/OZqmpr7YaC4IAAFZLCNRyk/1Jujvdc7XuTjeT/cmKOgJg09lqDACwnoRALTd8OMz00TT93X5KSvq7/UwfTQ2FBuDWbDUGAFhPTgcjw4dDoQ8Ad6a328vsbHZhHQCA1bESCAC4U7YaAwCsJyEQAHCnbDUGAFhPpda6tJvt7e3Vo6Ojpd0PAAAAYNuVUp7WWveuep6VQAAAAAAtIAQCAADYZE2TDAZJp7O4Ns2qO4L15HPF6WAAAAAbq2mS0SiZzxePZ7PF4yQZmsUGr/hcSWImEAAAwOYaDBY/zL6u309OTpbdDayvLf9cMRMIAABg252e3qwObeVzJYkQCAAAYHP1ejerQ1v5XEkiBAIAANhck0nS7Z6vdbuLOvAenytJhEAAAGujOW4yOBik87iTwcEgzXH7Ti1hxZycs3mGw2Q6Xcw1KWVxnU5bNegWrsXnShKDoQEA1kJz3GR0OMr82fxVrbvTzfTRNMOH7foGlRV5/eScZPEqeQt/SALYNNcdDC0EAgBYA4ODQWZnb55a0t/t5+Tdk+U3RPts+ck5ANvM6WAAABvk9Ozi00kuq8Odc3IOwNYTAgEArIHe7sWnk1xWhzvn5ByArScEAgBYA5P9Sbo7508t6e50M9lv16klrJCTcy5nYDawJYRAAABrYPhwmOmjafq7/ZSU9Hf7hkKzXE7OudjLgdmzWVLr4joaCYKAjWQwNAAAwGUMzAY2gMHQAADv0xw3GRwM0nncyeBgkObYq/jANRiYDWwRIRAAsPWa4yajw1FmZ7PU1MzOZhkdjgRBwNUMzAa2iBAIANh64yfjzJ/Nz9Xmz+YZPxmvqCNgYxiYDWwRIRAAsPVOzy7etnFZHeAVA7OBLSIEAgC2Xm/34m0bl9V5O+YvsXWGw8UQ6OfPF1cBELChhEAAwNab7E/S3Tm/naO7081k33aOu2b+EgCsLyEQALD1hg+HmT6apr/bT0lJf7ef6aNphg+9mn/XzF8CgPX1YNUNAAAsw/DhUOizBOYvAcD6shIIAIA7Y/4SAKwvIRAAAHfG/CUAWF9CIAAA7oz5SwCwvkqtdWk329vbq0dHR0u7HwAAAMC2K6U8rbXuXfU8K4EAAAAAWkAIBAAAANACQiAAANgkTZMMBkmns7g2zao7AmBDPFh1AwAAwDU1TTIaJfP54vFstnicJEPDtwH4YFYCAQDAphiP3wuAXprPF3UAuIIQCAAANsXp6c3qAPA+QiAAANgUvd7N6gDwPkIgAADYFJNJ0u2er3W7izoAXEEIBAAAm2I4TKbTpN9PSllcp1NDoYG74wTCreZ0MAAA2CTDodAHuB9OINx6VgIBAAAATiBsASEQAAAA4ATCFhACAQAAAE4gbAEhEABrrzluMjgYpPO4k8HBIM2xAYUAAHfOCYRbTwgEwFprjpuMDkeZnc1SUzM7m2V0OBIEAQDcNScQbr1Sa13azfb29urR0dHS7gfA5hscDDI7m71R7+/2c/LuyfIbAgCANVNKeVpr3bvqeVYCAbDWTs8uHkR4WR0AALiYEAiAtdbbvXgQ4WV1AADgYkIgANbaZH+S7s75AYXdnW4m+wYUAgDATQiBAFhrw4fDTB9N09/tp6Skv9vP9NE0w4cGFAIAwE0YDA0AAACwwQyGBgAAAOAVIRAAAABACwiBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAAC0gBAIAAAAoAWEQAAAAAAtIAQCAAAAaAEhEAAAAEALCIEAAAAAWkAIBAAAANACQiAAAACAFhACAQAAALSAEAgAAACgBYRAAAAAAC0gBAIAAABoASEQAAAAQAsIgQAAAABaQAgEAAAA0AJCIAAAAIAWEAIBAAAAtIAQCAAAaJ+mSQaDpNNZXJtm1R0B3LsHq24AAABgqZomGY2S+XzxeDZbPE6S4XB1fQHcMyuBAACAdhmP3wuAXprPF3WALSYEAt5Kc9xkcDBI53Eng4NBmmNLqQGANXd6erM6wJYQAgG31hw3GR2OMjubpaZmdjbL6HAkCAIA1luvd7M6wJYQAgG3Nn4yzvzZ+aXU82fzjJ9YSg0AvLCOA5gnk6TbPV/rdhd1gC0mBAJu7fTs4iXTl9UBgJZ5OYB5NktqfW8A86qDoOEwmU6Tfj8pZXGdTg2FBraeEAi4td7uxUumL6sDAC2zzgOYh8Pk5CR5/nxxFQABLSAEAm5tsj9Jd+f8UuruTjeTfUupAYAYwAywZoRAwK0NHw4zfTRNf7efkpL+bj/TR9MMH3olDQCIAcwAa0YIBLyV4cNhTt49yfNvep6Td08EQADAewxgBq5rHYfIbyEhEAAAcD8MYAauY12HyG+hUmtd2s329vbq0dHR0u4HAAAArLnBYBH8vK7fXwxu50qllKe11r2rnmclEAAAALA6hsgvjRAIAAAAWB1D5JdGCAQAAACsjiHySyMEAgAAAFbHEPmlebDqBgAAAICWGw6FPktgJRAAAABACwiBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAAC0gBAIAAAAoAWEQAAAAAAtIAQCAAAAaAEhEAAAAEALCIEAAAAAWkAIBAAAANACQiAAANg2TZMMBkmns7g2zao7AmANPFh1AwAAwB1qmmQ0SubzxePZbPE4SYbD1fUFwMpZCQQAANtkPH4vAHppPl/UAWg1IRAAAGyT09Ob1QFoDSEQAABsk17vZnUAWkMIBAAA22QySbrd87Vud1EHoNWEQAAAsE2Gw2Q6Tfr9pJTFdTo1FBoAp4MBAMDWGQ6FPgC8wUogAAAAgBYQAgEAAAC0gBAIoKWa4yaDg0E6jzsZHAzSHDerbgkAALhHZgIBtFBz3GR0OMr82TxJMjubZXQ4SpIMH5ohAQAA28hKIIAWGj8ZvwqAXpo/m2f8ZLyijgAAgPsmBAJoodOz0xvVAQCAzScEAmih3m7vRnUAAGDzCYEAWmiyP0l3p3uu1t3pZrI/WVFHAADAfRMCAbTQ8OEw00fT9Hf7KSnp7/YzfTQ1FBoAALZYqbUu7WZ7e3v16OhoafcDAAAA2HallKe11r2rnmcl0FtojpsMDgbpPO5kcDBIc9ysuiXYeD6vAAAA7ocQ6Jaa4yajw1FmZ7PU1MzOZhkdjvzACm/B5xVsNiEuAMB6sx3slgYHg8zOZm/U+7v9nLx7svyGYAv4vILN9TLEnT+bv6p1d7pmTQEALIHtYPfs9Oz0RnXgaj6vYHONn4zPBUBJMn82z/jJeEUdAQDwOiHQLfV2ezeqA1fzeQWbS4gLALD+hEC3NNmfpLvTPVfr7nQz2Z+sqCPYfD6vYHMJcQEA1t+VIVAp5QtLKd9XSvloKeXHSim//0X9m0sp/6SU8sMv/vt377/d9TF8OMz00TT93X5KSvq7fXMP4C35vILNJcQFAFh/Vw6GLqV8JMlHaq1/p5TyK5M8TfI1SX5Xkp+rtf7P173ZNg2GBgDOa46bjJ+Mc3p2mt5uL5P9iRCX5WiaZDxOTk+TXi+ZTJKhjz0A2uO6g6EfXPWEWuvHknzsxa9/tpTy0SRf8PYtAgDbZPhwKPRh+ZomGY2S+YvB5LPZ4nEiCAKA19xoJlApZZDky5L80IvSf1VK+dFSyv9ZSvncO+4NAAA+2Hj8XgD00ny+qAMA51w7BCqlfFaSP5/k3Vrrp5L870l+bZIvzWKl0B+/5O1GpZSjUsrRJz7xiTtoGQAAXji95AS6y+oA0GLXCoFKKTtZBEBNrfW7k6TW+lO11k/XWp8n+ZNJvvyit621Tmute7XWvXfeeeeu+gYAgMUMoJvUAaDFrnM6WEnybUk+Wmv9lvfVP/K+p/32JP/v3bcHAAAfYDJJuudPpku3u6gDAOdcORg6yb+Z5D9JclxK+eEXtW9M8h+VUr40SU1ykuS/uJcOAQDgMi+HPzsdDACudOUR8XfJEfEAAAAAd+u6R8Tf6HQwAAAAADaTEAgAAACgBYRAAAAAAC0gBAJoqea4yeBgkM7jTgYHgzTHzapbAgAA7tF1TgcDYMs0x01Gh6PMn82TJLOzWUaHoyTJ8KETdQAAYBtZCQTQQuMn41cB0EvzZ/OMn4xX1BEAAHDfhEAALXR6dnqjOrdjyx0AAOtECATQQr3d3o3q3NzLLXezs1lq6qstd4IgAABWRQgE0EKT/Um6O91zte5ON5P9yYo62j623AEAsG6EQAAtNHw4zPTRNP3dfkpK+rv9TB9NDYW+Q7bcAQCwbpwOBtBSw4dDoc896u32MjubXVgHAIBVsBIIAO6BLXfQEk2TDAZJp7O4NuZ+AbC+hEAAcA9suYMWaJpkNEpms6TWxXU0EgQBsLZKrXVpN9vb26tHR0dLux8AANybwWAR/Lyu309OTpbdDQAtVkp5Wmvdu+p5VgIBAMBtnF4y6P2yOtvDNkBgQwmBAADgNnqXDHq/rM52sA0Q2GBCIAAAuI3JJOmeHwCfbndRZ3uNx8l8fr42ny/qAGtOCAQAALcxHCbT6WIGUCmL63S6qLO9bAMENtiDVTcAAAAbazgU+rRNr3fxQHDbAIENYCUQAADAddkGCGwwIRAAAMB12QYIbDDbwQAAAG7CNkBgQ1kJBAAAANACQiAAAACAFhACAQAAwFWaJhkMkk5ncW2aVXfEdfh3O0cIBAAbrDluMjgYpPO4k8HBIM1xu7+xAYB70TTJaJTMZkmti+to1PpAYe35d3tDqbUu7WZ7e3v16OhoafcDgG3WHDcZHY4yfzZ/VevudDN9NM3woYGlAHBnBoNFgPC6fj85OVl2N1xXi/7dSilPa617Vz3PSiAA2FDjJ+NzAVCSzJ/NM34yXlFHALClTk9vVmc9+Hd7gxAIADbU6dnF38BcVgcAbqnXu1md9eDf7Q1CIADYUL3di7+BuawOANzSZJJ0u+dr3e6izvry7/YGIRAAbKjJ/iTdnfPf2HR3upnst/cbGwC4F8NhMp0uZsmUsrhOp4s668u/2xsMhgaADdYcNxk/Gef07DS93V4m+xNDoQEAWua6g6GFQNACfkgEAADYXtcNgR4soxlgdV4/Qnp2NsvocJQkgiAAAIAWMRMItpwjpAEAAEiEQK3UHDcZHAzSedzJ4GCQ5rhZdUvcI0dIAwAAkAiBWufl1qDZ2Sw19dXWIEHQ9nKENAAAAIkQqHVsDWofR0hDO1jlCQDAVYRALWNrUPsMHw4zfTRNf7efkpL+bj/TR1NDoWGLWOUJAMB1OCK+ZQYHg8zOZm/U+7v9nLx7svyGAHhrvrYDALTbdY+ItxKoZWwNAtg+VnkCAHAdQqCWsTUIYPsYAA8AwHU8WHUDLN/w4VDoA7BFJvuTjA5H5wb/W+UJAMDrrAQCgA1nlScAANdhMDQAAADABjMYGgAAAIBXhEAAAAAALSAEAgAAAGgBIRAAAABACwiBWFvNcZPBwSCdx50MDgZpjptVtwQAAAAb68GqG4CLNMdNRoejzJ/NkySzs1lGh6MkceQxAAAA3IKVQKyl8ZPxqwDopfmzecZPxivqCAAAADabEIi1dHp2eqM6AAAA8MGEQKyl3m7vRnUAAADggwmBWEuT/Um6O91zte5ON5P9yYo6AgAAgM0mBGItDR8OM300TX+3n5KS/m4/00dTQ6EBAADglkqtdWk329vbq0dHR0u7HwAALdA0yXicnJ4mvV4ymSRDLxwB0B6llKe11r2rnueIeAAANlfTJKNRMn9xquhstnicCIIA4DW2gwEAsLnG4/cCoJfm80UdADhHCAQAwOY6Pb1ZHQBaTAgEAMDm6vVuVgeAFhMCAQCwuSaTpNs9X+t2F3UA4BwhEAAAm2s4TKbTpN9PSllcp1NDoQHgAk4HAwBgsw2HQh8AuAYrgQAAAABaQAgEAAAA0AJCIAAAAIAWEAIBAAAAtIAQCAAAAKAFhEAAAADAcjRNMhgknc7i2jSr7qhVHBEPAAAA3L+mSUajZD5fPJ7NFo+TZDhcXV8tYiUQAAAAcP/G4/cCoJfm80WdpRACAQAAAPfv9PRmde6cEAgAALgZMz2A2+j1blbnzgmBAACA63s502M2S2p9b6aHIAi4ymSSdLvna93uos5SCIEAAIDrM9MDuK3hMJlOk34/KWVxnU4NhV6iUmtd2s329vbq0dHR0u4HAADcsU5nsQLodaUkz58vvx8AUkp5Wmvdu+p5VgIBAADXZ6YHwMYSAgEAANdnpgfAxhICAQAA12emB8DGerDqBgAAgA0zHAp9ADaQlUAAAAAALSAEAgAAAGgBIRAAAABACwiBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAAC0gBAIAAAAoAWEQAAAAAAtIAQCgC3WHDcZHAzSedzJ4GCQ5rhZdUvApmiaZDBIOp3FtfH1A2DTPVh1AwDA/WiOm4wOR5k/mydJZmezjA5HSZLhw+EqWwPWXdMko1EyX3z9yGy2eJwkQ18/ADZVqbUu7WZ7e3v16OhoafcDgDYbHAwyO5u9Ue/v9nPy7snyGwI2x2CwCH5e1+8nJyfL7gaAK5RSntZa9656nu1gALClTs9Ob1QHeOX0kq8Tl9UB2AhCIADYUr3d3o3qAK/0Lvk6cVkdgI0gBAKALTXZn6S70z1X6+50M9mfrKgjYGNMJkn3/NePdLuLOgAbSwgEAFtq+HCY6aNp+rv9lJT0d/uZPpoaCg1cbThMptPFDKBSFtfp1FBogA1nMDQAAADABjMYGgAAAIBXhEAAAAAALSAEAgAAAGgBIRAAAABACwiBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAAC0gBAIAAAAoAWEQAAA8LqmSQaDpNNZXJtm1R0BwFt7sOoGAABgrTRNMhol8/ni8Wy2eJwkw+Hq+gKAt2QlEAAAvN94/F4A9NJ8vqgDwAYTAgHABmqOmwwOBuk87mRwMEhzbKsK3JnT05vVAWBDCIEAYMM0x01Gh6PMzmapqZmdzTI6HAmC4K70ejerA8CGEAIBwIYZPxln/uz8VpX5s3nGT2xVgTsxmSTd7vlat7uoA8AGEwIBwIY5Pbt4S8pldeCGhsNkOk36/aSUxXU6NRQagI0nBAKADdPbvXhLymV1WDubcPz6cJicnCTPny+uAiDYLJvwdQZWQAgEABtmsj9Jd+f8VpXuTjeTfVtV2AAvj1+fzZJa3zt+3Q9owF3xdQYuJQQC2FJOj9pew4fDTB9N09/tp6Skv9vP9NE0w4dWKrABHL8O3DdfZ+BSpda6tJvt7e3Vo6Ojpd0PoK1enh71/uHB3Z2uoABYvU5n8cr860pZbL0CeFu+ztBCpZSntda9q55nJRDAFnJ6FLC2HL8O3DdfZ+BSQiCALeT0KOBO3eWAVcevA/fN1xm4lBAIYAs5PQq4M3c9YNXx68B983UGLmUmEMAW2qSZQM1xk/GTcU7PTtPb7WWyP1m7HqHVBoNF8PO6fn9xdDoAsHJmAgHch184S/7XL19c19imnB71Mqyanc1SUzM7m2V0OHKSGayT00u2kV5WBwDWlpVAADfxo9+ZfPd/nvyO/yP5kt+56m423uBgkNnZmysM+rv9nLx7svyGgDdZCQQAa89KIID78MN/enH9kT+92j62hAHWsAEMWAWArfFg1Q1I8PQwAAAgAElEQVQArLUfP0xOvv+9x7O/tbie/EDyf/+B9+qD35T8+kfL7W0L9HZ7F64EMsAa1sjLQarj8WILWK+3CIAMWAWAjSMEAvggz38pOfq25Pkvn69/+heTv/0nFr/uPEh6X7H83rbAZH9y4QDryb4VBrBWhkOhDwBsAdvBAD7Ib/gPkq/7geRzB8mDzzz/ew8+c1H/uh9IfsPvWEV3G29TBlgDAMA2MBga4Dr+xSeTP/Zrkvrp92rlQ8kf/EfJZ+yuri8AAKD1DIYGuEunP5jsfOZi61f50OK685nJ7AdX3RkAAMC1CIEAruNH/kzySz+f/Mtfkvye711cf+nnF3UAAIANYDA0wHX8s3+QfOUfTL7yDySdDyW/968mf+OPJX/vL626MwAAgGuxEog70Rw3GRwM0nncyeBgkOa4WXVLcLd+3w8kv/kbFgFQsrj+5m9Ift/fXG1fAAAA12QlEG+tOW7OHfE8O5tldDhKEif8AAAAwJqwEoi3Nn4yfhUAvTR/Ns/4yXhFHQEAAACvEwLx1k7PTm9UBwAAAJZPCMRb6+32blQHeFvmkAEAwM0JgXhrk/1Jujvdc7XuTjeT/cmKOgK22cs5ZLOzWWrqqzlkgiAAYO00TTIYJJ3O4tr4foXVEgLx1oYPh5k+mqa/209JSX+3n+mjqaHQwL0whwwA2AhNk4xGyWyW1Lq4jkaCIFaq1FqXdrO9vb16dHS0tPsBsH06jzupefP/XSUlz7/p+Qo6AgC4wGCwCH5e1+8nJyfL7oYtV0p5Wmvdu+p5VgIBsFHMIQMANsLpJQflXFaHJRACAbBRzCEDADZC75IXqC6rwxIIgQDYKOaQAQAbYTJJuudfuEq3u6jDipgJBAAAAPehaZLxeLEFrNdbBEBDL1xx9647E+jBMpoBAACA1hkOhT6sFdvBAAAAAFpACAQAAADQAkIgAAAAgBYQAgEAAHCxpkkGg6TTWVybZtUdAW/BYGgAAADe1DTJaJTM54vHs9nicWLYMWwoK4EAAAB403j8XgD00ny+qAMbSQgEAADAm05Pb1YH1p4QCAAAgDf1ejerA2tPCAQAAMCbJpOk2z1f63YXdWAjCYEAAAB403CYTKdJv5+UsrhOp4ZCwwZzOhgAAAAXGw6FPrBFrAQCAAAAaIErQ6BSyheWUr6vlPLRUsqPlVJ+/4v6v1RK+d5Syt9/cf3c+28XAAAAgNu4zkqgX07y9bXWL07yFUn+y1LKr0/yh5I8qbV+UZInLx4DAAAAsIauDIFqrR+rtf6dF7/+2SQfTfIFSf79JN/+4mnfnuRr7qtJAAAAAN7OjWYClVIGSb4syQ8l+fxa68eSRVCU5PMueZtRKeWolHL0iU984u26BQAAAOBWrh0ClVI+K8mfT/JurfVT1327Wuu01rpXa9175513btMjAAAAAG/pWiFQKWUniwCoqbV+94vyT5VSPvLi9z+S5OP30yIAAADcg6ZJBoOk01lcm2bVHcG9us7pYCXJtyX5aK31W973W38xyde++PXXJvkLd98eAAAA3IOmSUajZDZLal1cRyNBEFut1Fo/+Aml/FtJvj/JcZLnL8rfmMVcoO9M0ktymuR31lp/5oP+rL29vXp0dPS2PQMAAMDbGQwWwc/r+v3k5GTZ3cBbKaU8rbXuXfW8B1c9odb6N5OUS357/6aNAQAAwMqdnt6sDlvgRqeDAQAAwFbo9W5Why0gBIL3aY6bDA4G6TzuZHAwSHNsPzDrz8ctAMAtTCZJt3u+1u0u6rClrtwOBm3RHDcZHY4yfzZPkszOZhkdjpIkw4fDVbYGl/JxCwBwS8MX3yuNx4stYL3eIgAa+h6K7XXlYOi7ZDA062xwMMjs7M3BcP3dfk7ePVl+Q3ANPm4BAIDrDoa2HQxeOD27eADcZXVYBz5uAQCA6xICwQu93YsHwF1Wh3Xg4xYAALguIRC8MNmfpLtzfjBcd6ebyb7BcKwvH7cAAMB1CYHgheHDYaaPpunv9lNS0t/tZ/poargua83HLQAAcF0GQwMAAABsMIOhgVZrjpsMDgbpPO5kcDBIc9ysuiUAAICVEgIBW6c5bjI6HGV2NktNzexsltHhqNVBkFAMAAAQAgFbZ/xknPmz+bna/Nk84yfjFXW0WkIxAAAgEQIBW+j07PRG9W0nFAMAABIhELCFeru9G9W3nVAMADZM0ySDQdLpLK6N1bvA3RACAVtnsj9Jd6d7rtbd6WayP1lRR6slFAOADdI0yWiUzGZJrYvraCQIAu6EEAjYOsOHw0wfTdPf7aekpL/bz/TRNMOHw1W3thJCMQDYIONxMj+/jTvz+aIO8JZKrXVpN9vb26tHR0dLux8AC81xk/GTcU7PTtPb7WWyP2ltKAYAa63TWawAel0pyfPny+8H2AillKe11r2rnmclEEALDB8Oc/LuSZ5/0/OcvHsiAAK2m3kqbLLeJdu1L6sD3IAQCGid5rjJ4GCQzuNOBgcDR6UDbBPzVNh0k0nSPb+NO93uog7wloRAQKs0x01Gh6PMzmapqZmdzTI6HAmCALaFeSpsuuEwmU6Tfn+xBazfXzweWsULvD0zgYBWGRwMMjubvVHv7/Zz8u7J8hsC4G6ZpwJAC5kJBHCB07PTG9UB2DDmqQDApYRAQKv0di/+IeCyOgAbxjwVALiUEAholcn+JN2d8z8cdHe6mez74aDNDAuHLWKeCgBc6sGqGwBYppdHo4+fjHN6dprebi+T/Ykj01vs5bDw+bPFINmXw8KT+LiATTUcCn0A4AIGQwPQaoaFAwCw6QyGBoBrMCwcAIC2EAIB0GqGhQO31jTJYLA4ln4wWDwGgDUmBAKg1QwLB26laZLRKJnNkloX19FIEATAWhMCAdBqw4fDTB9N09/tp6Skv9vP9NHUUGjgg43HyXx+vjafL+rAB7OKDlbGYGgAALipTmexAuh1pSTPny+/H9gUL1fRvT9E7XaT6dSpfvAWDIYGAID70rtkbthldWDBKjpYKSEQAADc1GSyWL3wft3uog5c7vSS0zcvqwN3SggEAAA3NRwutq/0+4stYP2+7SxwHVbRwUoJgQAA4DaGw+TkZDED6OREAATXYRUdrJQQCAAAgOXYlFV0TjBjSz1YdQMAAAC0yHC4fqHP+71+gtlstnicrHffcA1WAm2Q5rjJ4GCQzuNOBgeDNMfSaAAAgDvlBDO2mBBoQzTHTUaHo8zOZqmpmZ3NMjocCYIAuDdefACglZxgxhYTAm2I8ZNx5s/Op9HzZ/OMn0ijAbh7XnwAoLWcYMYWEwJtiNOzi1Pny+oA8Da8+ABAaznBjC0mBNoQvd2LU+fL6gDwNrz4AEBrbcoJZnALQqANMdmfpLtzPo3u7nQz2ZdGA3D3vPgAQKsNh8nJSfL8+WIF0HjsuHi2ghBoQwwfDjN9NE1/t5+Skv5uP9NH0wwfSqMBuHtefACAvHdc/GyW1PrecfGCIDZUqbUu7WZ7e3v16OhoafcDAG6vOW4yfjLO6dlperu9TPYnXnwAoF0Gg0Xw87p+f7FSCNZEKeVprXXvyucJgQAAAOACnc5iBdDrSllsFYM1cd0QyHYwAAAAuIjj4tkyQiAAAAC4iOPi2TJCIAAAALiI4+LZMg9W3QAAAACsreFQ6MPWsBIIAAAAoAWEQAAAAAAtIAQCAAAAaAEhEAAAALBdmiYZDJJOZ3FtmlV3tBaEQCRJmuMmg4NBOo87GRwM0hwv7xNklfdetja9rwAAACvRNMlolMxmSa2L62gkCIoQiCyCidHhKLOzWWpqZmezjA5HSwkoVnnvZWvT+3obAjIAAOBOjMfJfH6+Np8v6i1Xaq1Lu9ne3l49Ojpa2v24nsHBILOz2Rv1/m4/J++ebO29l61N7+tNvQzI5s/e+0Ld3elm+mia4UPHcQIAADfQ6SxWAL2ulOT58+X3swSllKe11r2rnmclEDk9O71RfVvuvWxtel9vavxkfC4ASpL5s3nGTyT1AADADfV6N6u3iBCI9HYv/kS4rL4t9162Nr2vNyUgAwAA7sxkknS752vd7qLeckIgMtmfpLtz/hOku9PNZP/+P0FWee9la9P7elMCMgAA4M4Mh8l0mvT7iy1g/f7i8dCoCSEQGT4cZvpomv5uPyUl/d3+0maxrPLey9am9/WmBGQAAMCdGg6Tk5PFDKCTEwHQCwZDA2uhOW4yfjLO6dlperu9TPYnAjIAAIBruO5gaCEQAAAAwAZzOhgAAAAArwiBAAAAAFpACASsTHPcZHAwSOdxJ4ODQZrjZtUtAQAAbK0Hq24AaKfmuMnocJT5s3mSZHY2y+hwlCQGQgMAANwDK4GAlRg/Gb8KgF6aP5tn/GR85dtaQQQAAHBzVgIBK3F6dnqj+ktWEAEAANyOlUDASvR2ezeqv/Q2K4gAAADaTAgErMRkf5LuTvdcrbvTzWR/8oFvd9sVRAAAAG0nBAJWYvhwmOmjafq7/ZSU9Hf7mT6aXrml6zoriMwMAgAAeJOZQMDKDB8ObzzHZ7I/OTcTKDm/gsjMIAAAgItZCfQWrDaA5btqBZGZQQAAABezEuiWrDaA1fmgFURmBgEAAFzMSqBbstoA1tNtTx0DAADYdkKgW7LaANbTbU8dA9rNFm8AoA2EQLdktQGsp9ueOga018st3rOzWWrqqy3egiAAYNuUWuvSbra3t1ePjo6Wdr/79PpMoGSx2sAPmwCwWQYHg8zOZm/U+7v9nLx7svyGAABuqJTytNa6d9XzrAS6JasNAGA72OINALSF08HewgedUAQAbIbebu/ClUC2eAMA28ZKIACg1QyUBwDaQggEALRaa7d4N00yGCSdzuLaGITNFXzMAGw8g6EBANqmaZLRKJm/d8BFut1kOk2GWx5+cTs+ZgDW2nUHQwuBAADaZjBIZm/OQUq/n5ycLLsbNoGPGYC15nQwAAAudnrJyWeX1cHHDMBWEAIBALRN75KTzy6rg48ZgK0gBAIAaJvJZDHP5f263UUdLuJjBmArCIEAANpmOFwM9O33k1IWVwN++SA+ZgC2gsHQAAAAABvMYGgAAAAAXhECAQAAALSAEAgAAACgBYRAsAWa4yaDg0E6jzsZHAzSHDerbgkAAIA182DVDQBvpzluMjocZf5sniSZnc0yOhwlSYYPndgBAADAgpVAsOHGT8avAqCX5s/mGT8Zr6gjAAAA1pEQCDbc6dnpjeoAAAC0kxAINlxvt3ejOgAAAO0kBIINN9mfpLvTPVfr7nQz2Z+sqCMAAADWkRAINtzw4TDTR9P0d/spKenv9jN9NDUUGgAAgHNKrXVpN9vb26tHR0dLux8AAADAtiulPK217l31PCuBAAAAAFpACAQAbK3muMngYJDO404GB4M0x82qWwIAWBkhEACwlZrjJqPDUWZns9TUzM5mGR2OBEHA2vrULzzLV33L38infuHZqltZvaZJBoOk01lcG1+74S4IgQCArTR+Ms782fxcbf5snvGT8Yo6Avhgf+2jH89PfPzn8n1/7+OrbmW1miYZjZLZLKl1cR2NBEFwB4RAcAO2FQBsjtOz0xvVAVbtu57+5Llra43Hyfx8iJ/5fFEH3sqDVTcAm+LltoL/n737i5Uty++D/lvVt6OmEL7OyA3YhKqCkZXESeMkVCwkK0hRx8i2aAxvWFuQh0glKzHyIF6QSiIxUikREmIQQUgFWI40OyF+cGAGnJCkH2Ih8mfOHQI9QYkc26eKSZxxm0luLCrJ9MxZPOw+c+45fc49p86pqv1nfT5Sa9/967q910g1VbW/e63funyqfLmsICJsxw7QQZPnk9i83NxaB+iCP/flX4m/8ktf+9b5Xztv/vxXf/lr8Uc+/ze+Vf/X/uVPxQ/+9u+8+ot13QQi223EZBKxWkVUA/o9ur0jrL+rDjyYEAge6HXLCoRAAN2zend1LbyPiBi/OY7Vu6sWRwVw5aNv5vjcX9nENy7ytfrXv3ERP/2/n0dExLNRivn0N179y8ulUpczZS6XSkUMJwiaTJr/XbfVgSexHAweyLICgH6p3qli/d46ps+nkSLF9Pk01u+tBfdAZ7z3vd8Vf/Ynfk9MPjWOt968fmv21pujmHxqHH/2J35P/Jvf+11X/6KEpVKrVcR4fL02Hjd14ElSzvn+Vx3IfD7PZ2dnJ7seHNLss7NblxVMn0/j/DPnpx8QAACD8PIffRS/6z/9C/HNV+7N3hil+D/+kx+Ib3vrzesvHo2aZsk3pRRxcXHkkZ7Q0Je8wYGllF7knOf3vc5MIHig1burGL95/YmEZQUAADzVF3/5a/HWbxjFs1GKUWoCoLfeHMUXf/lrn3zxXUuihrZUqqoizs+bYOv8XAAEByIEggeyrAAAgGP42S99JXb/5JvxPd/1bfGzf/D747d917fF7p98M372S3/nky+2VAp4Ao2hYQ/VO5XQBwCAg/rl//f/i59497vjP3j3u+ONUYo/8we/P/6r938h/vz//dVPvvhyRoylUsAj6AkEAABwSS8aoIce2hPITCAAAICIMrZfB4qmJxAAAEBEGduvA0UTAgEAAEQ0S8D2qQP0jBAIAAAgopzt17ldXUfMZhGjUXOs67ZHBAcnBAIAAIiw/XrJLvtBbTYROV/1gxIEMTBCIAAAgIim+fN6HTGdRqTUHNdrTaFLoB8UhbBFPAAAAGUbjZoZQDelFHFxcfrxwJ4eukW8mUAAAACUTT8oCiEEAgAAoGz6QVEIIRAAAABl0w+KQjxrewAAAADQuqoS+jB4ZgIBAAAAFEAIBAAAAFAAIRAAAAAPV9cRs1mzrfps1pwDvSAEAgAYGjdowLHUdcRiEbHZROTcHBcLnzPQE0IgAIAhcYMGHNNyGbHbXa/tdk0d6DwhEADAkLhBA45pu92vDnSKEAgAYEjcoAHHNJnsVwc6RQgEADAkbtCAY1qtIsbj67XxuKkDnScEAgAYEjdowDFVVcR6HTGdRqTUHNfrpg503rO2BwAAwAFd3ogtl80SsMmkCYDcoAGHUlU+U6CnhEAAAEPjBg0AuIXlYAAAAAAFEAIBAAAAFEAIBAAAAFAAIRAAAABAAYRAAAAAAAUQAgEAAAAUQAgEAAAAUAAhEAAAAEABhEAAAAAABRACAQAAABRACAQAAABQACEQAAAAQAGEQAAAAAAFEAIBAAAAFEAIBAAAAFAAIRAAAABAAYRAdE79QR2zz85i9JOjmH12FvUHddtDAgAAgN571vYA4FX1B3UsvrCI3Ue7iIjYvNzE4guLiIio3qnaHBoAAAD0mplAdMry/eW3AqBLu492sXx/2dKIAAAAYBiEQHTK9uV2rzoAAPBEdR0xm0WMRs2x1o4BhureECil9FMppV9NKX35ldofSSn9nZTSX//4nx8+7jApxeT5ZK86AADwBHUdsVhEbDYROTfHxUIQBAP1kJlAPx0RP3hL/b/IOf+Oj//5ucMOi1Kt3l3F+M3xtdr4zXGs3l21NCIAABiw5TJid70dQ+x2TR0YnHtDoJzzz0fE104wFojqnSrW761j+nwaKVJMn09j/d5aU2gAADiG7R1tF+6qA732lN3Bfjyl9O9HxFlE/Ec5579/oDFRuOqdSujDwdUf1LF8fxnbl9uYPJ/E6t2V9xkAwGTSLAG7rQ4MzmMbQ/83EfHpiPgdEfErEfGf3/XClNIipXSWUjr78MMPH3k5gMerP6hj8YVFbF5uIkeOzctNLL6wiPoDa90BgMKtVhHj6+0YYjxu6sDgPCoEyjl/Nef8zZzzRUT8txHxfa957TrnPM85z99+++3HjhPg0ZbvL2P30fW17ruPdrF831p3AKBwVRWxXkdMpxEpNcf1uqkDg/Oo5WAppe/MOf/Kx6f/TkR8+XWvB2jT9uXta9rvqgMAFKWqhD5QiIdsEf+nIuIvR8RvTil9JaX0ByLiP0spfZBS+r8i4vdGxH945HECPNrk+e1r2u+qv079QR2zz85i9JOjmH12ZkkZAADQGw/ZHexHc87fmXN+M+f8m3LO/33O+d/LOb+Tc/5Xcs7/1iuzggA6Z/XuKsZvXl/rPn5zHKt391vrrrcQAHCvuo6YzSJGo+ZY+50AdMdjG0MD9Eb1ThXr99YxfT6NFCmmz6exfm+99+5gegsBAK9V1xGLRbPbVs7NcbEQBAGdkXLOJ7vYfD7PZ2dnJ7sewCGNfnIUOT75mZkixcUfvmhhRABAp8xmt2+3Pp1GnJ+fejRAQVJKL3LO8/teZyYQB6VfCkN2yN5CAMAAbe/YdOKuOsCJCYE4GP1SGLpD9RYCAAZqcseDobvqACcmBOJg9Eth6A7VWwgAGKjVKmJ8/YFRjMdNHaADnrU9AIZj+/L2aa531aGPqncqoQ8AcLvq498Iy2WzBGwyaQKgym8HoBuEQBzM5PkkNi8/2QhPvxQAAIpRVUIfoLMsB+Ng9EsBAIAW1XWzQ9lo1BxtTQ/cIATiYNrsl2JXMgAAilbXEYtFs0V9zs1xsRAEAdeknPPJLjafz/PZ2dnJrkcZLncle7Up9fjNsYa9AACUYzZrgp+bptOI8/NTjwY4sZTSi5zz/L7XmQlE79mV7HjMsAIA6IntHZux3FUHiiQEovfsSnYclzOsNi83kSPH5uUmFl9YCIIAALpocsdmLHfVgSIJgei9u3YfsyvZ05hhBQDQI6tVxPj6Ji0xHjd1gI8Jgeg9u5IdhxlWAAA9UlUR63XTAyil5rhe264euEYIRO+1uSvZkJlhBQDQM1XVNIG+uGiOAiDgBiEQg1C9U8X5Z87j4g9fxPlnzosIgI7dtNkMKwCAHqrrZqew0ag52iIeeMWztgcA7O+yafNlz57Lps0RcbAA7PK/s3x/GduX25g8n8Tq3VURARsAQC/VdcRiEbH7uK/jZtOcR5gVBERERMo5n+xi8/k8n52dnex6MFSzz85i83Lzifr0+TTOP3N++gEBQERzA7pcNltSTyZNQ1o3nnA6s1kT/Nw0nTbLw4DBSim9yDnP73udmUDQQ5o2A9A5ZiBA+7Z3/Ba8qw4UR08g6CFNmwHonOXyKgC6tNs1deA0Jnf8FryrDhRHCAQ9pGkzAJ1jBgK0b7WKGF//jRjjcVMHCCEQ9FL1ThXr99YxfT6NFCmmz6exfm+taTMA7TEDAdpXVRHrddMDKKXmuF5bkgl8i8bQAAA83c2eQBHNDAQ3oABwdA9tDG0mEAAAT2cGAgB0nt3BAAA4jKoS+gBAh5kJBAAAAFAAIRAAAABAAYRAAAAAAAUQAgFAD9R1xGwWMRo1x7pue0QADI4vGxg8jaEBoONu7ry92TTnEXrwAnAgvmygCCnnfLKLzefzfHZ2drLrAcAQzGbNb/GbptOI8/NTjwaAQfJlA72WUnqRc57f9zrLwRic+oM6Zp+dxegnRzH77CzqD0xjBfptu92vDgB782UDRRACMSj1B3UsvrCIzctN5MixebmJxRcWgiCg1yaT/eoAsDdfNlAEIRCDsnx/GbuPdtdqu492sXx/2dKIAJ5utYoYj6/XxuOmDgAH4csGiiAEonWHXL61fXn7dNW76gB9UFUR63XTliGl5rhe69MJwAH5soEiaAxNqy6Xb706e2f85jjW762jemf/L5zZZ2exefnJhnbT59M4/8z5U4YKAAAAnaQxNL1w6OVbq3dXMX7z+jTW8ZvjWL1rGisAAABlEwLRqkMv36reqWL93jqmz6eRIsX0+fTRs4oAAABgSJ61PQDKNnk+uXX51uT543chqN6phD4AAABwg5lAtMryLQAAADgNIRCtsnwLAAAATsPuYAAAAAA9ZncwAAAAAL5FCAQAAABQACEQAAAAQAGEQAAAAAAFEAIBAAAAFEAIBAAAAFAAIRAAAABAAYRAAAAAAAUQAgEAAAAUQAgEAAAAUAAhEAAAAEABhEAAAAAABRACAQAAABRACAQAAABQACEQAAAA8HR1HTGbRYxGzbGu2x4RNzxrewAAAABAz9V1xGIRsds155tNcx4RUVXtjYtrzAQCAAAAnma5vAqALu12TZ3OEAIBAAAAT7Pd7lenFUIgAABOT98IgGGZTPar0wohEAAAp3XZN2Kzicj5qm+EIAigv1ariPH4em08bup0hhAIAIDT0jcCYHiqKmK9jphOI1Jqjuu1ptAdk3LOJ7vYfD7PZ2dnJ7seAAAdNBo1M4BuSini4uL04wGAnkspvcg5z+97nZlAAEBvaSvTU/pGAEArhEAAQC9pK9Nj+kYAQCuEQABAL2kr02P6RgBAK/QEAgB6SVsZAICGnkAAwKBpKwMAsB8hEADQS9rKAADsRwgEAPSStjIAAPsRAsGJ2c4Y4HCqKuL8vOkBdH4uAAIAeJ1nbQ8ASnK5nfHlbjaX2xlHuHEBAADguMwEghOynTEAAABtEQINnKVH3bLd7lcHAACAQxECDdjl0qPNJiLnq6VHgqD22M4YAACAtgiBBszSo+6xnTEAAABtEQINmKVH3WM7YwAAANoiBBowS4+6yXbGAFAQDRoZMu9v6B0h0IBZegQA0CINGh9PuNB93t/QSynnfLKLzefzfHZ2drLr0XwGL5fNErDJpAmAzDwBADiB2ay5Mb5pOm2mA3O7y3Dh1eaW47E19F3j/Q2dklJ6kXOe3/s6IRAAPIxgHdjLaNTMkLgppWZdOLcTLvSD9zd0ykNDIMvBAOABzHoH9qZB4+PY3aQfvL+hl4RAAPAAy+X1lQkRzfly2c54gB44RIPGEnvjCBf6QQNS6CUhEAA8gAfTwN6qquljM502S2Sm0/362pQ6BVG40A9PfX8DrdATCAAeQIsK4ORK/uDRhA1gL3oCAcABeTANnFzJUxCrqgm6Li6aowAI4CCEQADwAGa9AyenNw4AByYEAoAH8mAaOClTEAE4MCEQ3KPETTmAfvD5BANnCiIAB6YxNLzG5aYcr24LPR77/QW0z+cTAACXHtoYWggEr1HyphxAt4CmiogAACAASURBVPl8AgDgkt3B4ABK3pQD6DafTwAA7EsIBK9hUw6gq3w+nY7eSwDAUAiB4DVsygF0lc+n07jsvbTZROTcHBcLQRAA0E9CIHgNm3IAXeXz6TSWy+vNtyOa8+WynfEAADyFxtAAAHcYjZoZQDelFHFxcfrxAADcRmNoAIAn0nsJABgSIRAAwB30XgIAhkQIBABwB72XAIAhedb2AAAAuqyqhD4AwDCYCQQAAABQACEQAAAAQAGEQAAAAAAFEAIBDEhdR8xmEaNRc6zrtkcEAAB0hcbQAANR1xGLRcRu15xvNs15hKa2AACAmUAAg7FcXgVAl3a7pn6TGUMAAFAeIRDAQGy3D6tfzhjabCJyvpoxJAgCADgxT+Y4MSEQwEBMJg+r7zNjCACAI/FkjhYIgQAGYrWKGI+v18bjpv6qh84YAgDgiDyZowVCIICBqKqI9TpiOo1IqTmu159sCv3QGUMAAByRJ3O0QAgEMCBVFXF+HnFx0Rxv2xXsoTOGAAA4Ik/maIEQCKAwD50xBADAEXkyRwuetT0AAE6vqoQ+AACtuvwxtlw2S8AmkyYA8iONIxICAQAAQBs8mePELAcDAAAAKIAQCAAAAKAAQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEKij6jpiNosYjZpjXbc9IgAAAKDPhEAdVNcRi0XEZhORc3NcLARBQD8IsQEAoJuEQB20XEbsdtdru11TB+gyITYAAHSXEKiDttv96gBdIcQGAIDuEgJ10GSyXx2gK4TYAADQXUKgDlqtIsbj67XxuKnDY+jRwqkIsQEAoLuEQB1UVRHrdcR0GpFSc1yvmzrsS48WTkmIDQAA3ZVyzie72Hw+z2dnZye7HtDM/NlsPlmfTiPOz089GkpQ100PoO22mQG0WgmxAQDgmFJKL3LO83tfJwSCYRuNmhlAN6UUcXFx+vEAAABwWA8NgSwHg4HTowUAAIAIIRAMnh4tAAAARAiBYPA0GgcAACAi4lnbAwCOr6qEPgAAAKUzEwgAAACgAEIgAAAAgAIIgQAAAAAKIAQCAAAAKIAQCAAAAKAAQiAAAACAAgiBAACA6+o6YjaLGI2aY123PSIADuBZ2wMAAAA6pK4jFouI3a4532ya84iIqmpvXAA8mZlAAADAleXyKgC6tNs1dRg6s+AYODOBAACAK9vtfnUYCrPgKICZQAAAwJXJZL86DIVZcBRACAQAAFxZrSLG4+u18bipw5CZBUcBhEAAAMCVqopYryOm04iUmuN6bTkMw2cWHAUQAgEAANdVVcT5ecTFRXMUAFECs+AogBAIAAAA+jgLzm5m7MnuYAAAABDRBD5dDn1eZTczHsFMIAAGxQMxAKAIdjPjEcwEAmAwPBADAIphNzMewUwgAAbDAzEAoBh2M+MRhEAADIYHYgBAMexmxiPcGwKllH4qpfSrKaUvv1L7VErpL6SUfuHj42887jAB4H4eiAEAxejjbma07iEzgX46In7wRu0/joj3c87fHRHvf3wOAK3yQAwAKEpVRZyfR1xcNEcBEPe4NwTKOf98RHztRvlHIuJPfPznPxER//aBxwVAC/q+s5YHYgAAcLeUc77/RSnNIuJ/zjn/9o/P/0HO+dtf+fd/P+d865KwlNIiIhYREZPJ5F/dbDYHGDYAh3ZzZ62IZhaNEAUAALotpfQi5zy/73VHbwydc17nnOc55/nbb7997MsB8Eh21gIAgGF7bAj01ZTSd0ZEfHz81cMNiZL1fSkK9JmdtQAAYNgeGwJ9PiJ+/8d//v0R8T8dZjiU7HIpymYTkXNzXCwEQXAqdtYCAIBhe8gW8X8qIv5yRPzmlNJXUkp/ICL+WET8QErpFyLiBz4+hyexFAXaZWctAAAYtmf3vSDn/KN3/Kt3DzwWCmcpCrTrsvnzctn8/24yaQIgTaEBAGAY7g2B4FQmk2YJ2G114DSqSugDAABDdfTdweChLEUBAACA4xEC0RlVFbFeR0ynESk1x/XarAQAAAA4BCEQnVJVEefnERcXzbHtAMiW9QAAAAyFnkBwh8st6y93LLvcsj6i/XAKAAAA9mUmENzBlvUAAAAMiRAI7mDLegAAAIZECAR3uGtrelvWAwAA0EdCILiDLesBAAAYEiEQ3MGW9QAAAAyJEAheo2tb1gMABavriNksYjRqjnXd9ogA6BlbxAMAQNfVdcRicbV16WbTnEd4SgXAg5kJBAAAXbdcXgVAl3a7pg4ADyQEAgCArttu96sDwC2EQAAA0HWTyX51ALiFEAgAALputYoYj6/XxuOmDgAPJAQCAICuq6qI9TpiOo1IqTmu15pCA7AXu4MBAEAfVJXQB4AnMRMIAAAAoABCIAAA+q2uI2aziNGoOdZ12yMCgE6yHAwAgP6q64jFImK3a843m+Y8wtIpALjBTCAAAPprubwKgC7tdk0dALhGCAQAQH9tt/vVAaBgQiAAAPprMtmvDgAFEwIBANBfq1XEeHy9Nh43dQDgGiEQAAD9VVUR63XEdBqRUnNcrzWFBoBbCIEAAOi3qoo4P4+4uGiOAiDgEOo6YjaLGI2aY123PSJ4MlvEAwAAwKvqOmKxuNp9cLNpziMEzfSamUAAAADwquXyKgC6tNs1degxIRAAAAC8arvdrw49IQQCAACAV00m+9WhJ4RAAAAA8KrVKmI8vl4bj5s69JgQCAAAAF5VVRHrdcR0GpFSc1yvNYWm9+wOBgAAADdVldCHwTETCAAAAKAAQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEAgAAACgAEIgAAAAgAIIgQAAAAAKIAQCAAAAKIAQCAAAAKAAQiAAAACAAgiBAAAAAAogBGpZXUfMZhGjUXOs67ZHBAAAAAzRs7YHULK6jlgsIna75nyzac4jIqqqvXEBAAAAw2MmUIuWy6sA6NJu19QBAAAADkkI1KLtdr86AP1iyS8AAF0iBGrRZLJfHYD+uFzyu9lE5Hy15FcQBABAW4RALVqtIsbj67XxuKkD0G+W/AIA0DVCoBZVVcR6HTGdRqTUHNdrTaEBhsCSXwAAusbuYC2rKqEPwBBNJs0SsNvqAADQBjOBAOAIhrLkV3NrAIDhEAIBwBEMYcmv5tZQCGkvQDFSzvlkF5vP5/ns7Oxk1wMAHm82u31J23QacX5+6tEAR3GZ9r7ayX487l9qDVC4lNKLnPP8vteZCQQA3EpzayiArQwBiiIEAgBudVcTa82tYUCkvQBFEQIBALcaSnNr4DWkvQBFEQIBALfqQ3Nr/WzhiaS9AEURAgHQC27221FVTRPoi4vm2LUAyO5l8ER9SHsBOBi7gwHQeTav4TZ2LwMAaNgdDIDBsHkNt9HPFgBgP0IgADrPzT630c+WYlkfC8AjCYEA6Dw3+9xGP1uKpBkWAE8gBAKg89zscxv9bCmS9bEAPIHG0AD0Ql039zjbbTMDaLVysw8UaDRqZgDdlFKzjR8ARdIYGoBB6fJW5XSDNikUwfpYAJ5ACAQA9J42KRTD+lgAnkAIBAD0njYpFEMzLACeQE8gAKD3tEkBAEqmJxAAUAxtUgAA7icEAgB6T5sUAID7CYEAgN7TJgUA4H7P2h4AAMAhVJXQBwDgdcwEAgAAACiAEAgAAACgAEIgAAA6qa4jZrOI0ag51nXbIwKAftMTCACAzqnriMUiYrdrzjeb5jxC7ycAeCwzgQAA6Jzl8ioAurTbNXUA4HGEQAAAdM52u18dALifEIhB0TsAAIZhMtmvDgDcTwjEYFz2DthsInK+6h0gCAKA/lmtIsbj67XxuKkDAI8jBGIw9A4AgOGoqoj1OmI6jUipOa7XmkIDwFMIgRgMvQOOz3I7AE6pqiLOzyMuLpqjAAgAnkYIxGDoHXBcltsBAAD0mxCIwdA74LgstwMAAOg3IRCDoXfAcVluBwAA0G/P2h4AHFJVCX2OZTJploDdVgcAAKD7zAQCHsRyOwAAgH4TAgEPYrkdAABAv1kOBjyY5XYAAAD9ZSYQAAAAQAGEQAAAAAAFEAIBAAAAFEAIBAADUNcRs1nEaNQc67rtEQHQCl8IwGtoDA0APVfXEYtFxG7XnG82zXmEZu4ARfGFANwj5ZxPdrH5fJ7Pzs5Odj0AKMFs1vzOv2k6jTg/P/VoAGiNLwQoVkrpRc55ft/rLAcDgJ7bbverAzBQvhCAewiBAKDnJpP96nCTFiIwEL4QgHsIgQCg51ariPH4em08bupwn8sWIptNRM5XLUQEQdBDXftCkDBD5wiBAKDnqipivW5aPqTUHNdrPUB5mOXyqofspd2uqQM906UvBAkzdJLG0AAABRuNmvuzm1KKuLg4/XiAgdCkGk5KY2gAAO6lhQhwFJpUQycJgQAACta1FiLAQEiYoZOEQAAABetSCxFgQCTM0EnP2h4AAADtqiqhD3Bglx8qy2WzBGwyaQIgHzbQKjOBAIhf//qvx4/8jz8Sv/71X297KADAUFRV0wT64qI5CoCgdUIgAOIvfeUvxS+9/KX4+a/8fNtDAQAAjkQIBEB8/m9/vjn+4udbHgkAAHAsegIBFOgvbv5ifPHvffFb5y+++iIiIs7+3ln80b/6R79V/93//O+O3zf9fScfH0Bp6lrrFACOTwgEUKCPLj6Kn/lbPxPfyN+4Vv/6xdfjT/7NPxkREc/Ss/id/+zvbGN4AEWp64jFImK3a843m+Y8QhAEwGGlnPPJLjafz/PZ2dnJrgfA3X7xH/xi/Pj7Px6/9o9+Lf7xN//xt+pvvfFWfMc/9R3xx9/94/Hpb/90iyMEKMNs1gQ/N02nTS9dALhPSulFznl+3+v0BAIo1Ke//dPxp9/70/HRxUfX6h9dfBQ/897PCIAATmS73a8OAI8lBAIo2Je++qV464234ll6FqM0ijfSG/HWG2/Fl776pbaHBlCMyWS/OnxCXTdTykaj5ljXbY8I6CghEEDBPv+Ln4/dN3bxWz71W+JzP/S5+K2f+q2x+8bOLmEAJ7RaRYzH12vjcVOHe102ldpsInK+aiolCAJuIQQCKNjmH27ix773x+JzP/y5eOftd+JzP/y5+LHv/bHY/MNbmlMAcBRVFbFeNz2AUmqO67Wm0DzQcnnVVfzSbtfUAW7QGBoAAKCvRqNmBtBNKUVcXJx+PEArNIYGAAAYOk2lgD0IgQAAAPpKUylgD0IgKIiNIwAABkZTKWAPz9oeAHAalxtHXPYNvNw4IsJvBACAXqsqP+iABzETCAph4wgAAICyCYGgENvtfnUAAACGRQgEhbBxBAAAQNmEQFAIG0cAAACUTQgEhbBxBAAAQNnsDgYFsXEEAABAucwEAgAAACiAEAgAAIBhqeuI2SxiNGqOdd32iKATLAcDAABgOOo6YrGI2O2a882mOY/QG4HimQkEAADAcCyXVwHQpd2uqUPhhEAAAAAMx3a7Xx0KIgTioCy9BQAAWjWZ7Fdvi5snWiAE4mAul95uNhE5Xy299VkG5fLbBgA4udUqYjy+XhuPm3pXuHmiJSnnfLKLzefzfHZ2drLrcVqzWfPZddN0GnF+furRAG272ZMxovn9tV7ryQgAHFldNz2AtttmBtBq1a0fIG6eOLCU0ouc8/ze1wmBOJTRqAmxb0op4uLi9OMB2uW3DQDAHdw8cWAPDYEsB+Ng+rL0FjgNPRkBAO7g5omWCIE4mD4svQVOx28bAIA7uHmiJUIgDqaqml4f02kzi3E61fsDSua3DQDAHdw80RI9gQA4mq73ZAQAgCF4aE+gZ6cYDABlqiqhDwAAdIXlYAAAAAAFEAIBAAAAFEAIBAAAAFAAIRAAAABAAYRAAAAAAAUQAlGcuo6YzSJGo+ZY122PCAAAAI7PFvEUpa4jFouI3a4532ya8wjbWAMAADBsZgJRlOXyKgC6tNs1dQAAABgyIRBF2W73q5+apWoAAAAcixCIokwm+9VP6XKp2mYTkfPVUjVBEAAAAIfwpBAopXSeUvogpfTXU0pnhxoUHMtqFTEeX6+Nx029bZaqAQB0hOnZwEAdojH07805/9oB/jtwdJfNn5fLZgnYZNIEQF1oCt31pWoAAEWwkwgwYCnn/Pi/nNJ5RMwfGgLN5/N8dmbCENxmNmt+Y9w0nUacn596NAAAhfKjDOihlNKLnPP8vtc9tSdQjog/n1J6kVJa3DGQRUrpLKV09uGHHz7xcjBcXV6qBgBQDNOzgQF7agj0/Tnn3xURPxQRfyil9K/ffEHOeZ1znuec52+//fYTLwfDVVUR63XzkCml5rhem3UMAHBSXd5JBOCJnhQC5Zz/7sfHX42IPxMR33eIQUGpqqqZZXxx0RwFQAAAJ2Z6NjBgjw6BUkr/dErpn7n8c0T8GxHx5UMNDACA7rFpEoNnejYwYE+ZCfTPRcT/llL6PyPir0XE/5Jz/nOHGRYAfedGEYbnctOkzSYi56tNk/z/m8ExPRsYqCftDrYvu4MBlOHm7roRzUx6D1Kh32yaBADddKrdwXgkT8iBIVsurwdAEc35ctnOeIDDsGkSAPSbEKgFplIDQ+dGEYbJpkkA0G9CoBZ4Qg4MnRtFGCabJgFAvwmBWuAJOTB0bhRhmGyaBAD9JgRqgSfkwNC5UYThsmkSvaYxJ1A4IVALPCGH/vGbcX9uFAHoFI05AYRAbfCEHPrFb0YAGACNOWGYPK3dS8o5n+xi8/k8n52dnex6AIcwmzXBz03TaTPDBQDogdGoeZpzU0rNtFWgfy6f1r4a8I7HRc6ySCm9yDnP73udmUAA99DMHQAGQGNOGB4z/PYmBAK4h9+MADAAGnPC8HhauzchEJ1kWSdd4jcjAAyAxpwwPJ7W7k0IROdowkvX+M0IAANh60oYFk9r96YxNJ2jCS8AAAAPUtdND6DttpkBtFoVGfA+tDG0EIjOsXEDAAAAPJzdwegtyzoBAADg8IRAdI5lnQAAAHB4QiA6RxNeAAAAOLxnbQ8AblNVQh8AAAA4JDOBAAAAgPbUdbNN9GjUHOu67RENlhDoyLyXAQAA4A51HbFYRGw2zTbRm01z7ub5KIRAR+S9DAAAAK+xXEbsdtdru11T5+CEQEfkvQwAAACvsd3uV+dJhEBH5L0MAAAArzGZ7FfnSYRAR+S9DAAAAK+xWkWMx9dr43FT5+CEQEfkvQwAsB+bagAR4cOgJFUVsV5HTKcRKTXH9bqpc3BCoCPyXoan8/0PUA6bagAR4cOgRFUVcX4ecXHRHN00H03KOZ/sYvP5PJ+dnZ3sekC/XX7/v9pgfTwWpgIM1WzW3OvdNJ029wRAIXwYwN5SSi9yzvN7XycEArrK9z9AWUaj5qH/TSk1D4eBQvgwgL09NASyHAzoLDvsAZSl9E01LIGGj5X+YQBHJAQCOsv3P0BZSt5UQwsUeEXJHwZwZEIg4Fu69gTS9z/wqq59RnF4JW+qsVxe74EX0Zwvl+2MB1pV8ocBHJmeQEBEdLcJc103P4C322YG0Grl+x9K1NXPKDgULVAAeAqNoYG9aMIMdJnPKIbOexyAp9AYGtiLJsxAl/mMYugsgQbgFIRAQERowgx0m88ohk4LFABOQQgERIQnkEC3+YyiBFXVLP26uGiOAiAADk0IBESEJ5DwUHaoaofPKACAp9MYuifskATQPjtUAQDQRRpDD8jlTcdm02wdutk0554+A5zWcnk9AIpozpfLdsYDAAD7EAL1gJsOgG6wQxUAAH0mBOoBNx0A3WCHKgAA+kwI1KKHNhd10wHQDXaoAgCgz4RALdmnz4+bDoBusEMVAAB9ZnewlsxmTfBz03QacX7+ybrdwQAAAIDbPHR3MCFQS0ajZgbQTSlFXFycfjwAAABAP9kivuP0+QEAAI7moQ1IgaIIgVqizw8AAHAU+zQgBYoiBGqJ5qLgARUAwFEslxG73fXabtfUgaLpCQS04vIB1au/T8ZjYSgAwJNpQArF0RMI6DQPqAAAjkQDUuAOQiCgFdvtfnUAAB5IA1LgDkIgoBUeUAEAHIkGpMAdhEBAKzygAgA4oqqKOD9vegCdnwuAgIgQAgEt8YAKAADgtIRAQGs8oCpXXUfMZs3mJbNZcw4AABzXs7YHAEBZ6jpisbjaHW6zac4jBIEAAHBMZgIBcFLL5VUAdGm3a+oAAMDxCIEAOKntdr86AABwGEIgAE5qMtmvDgAAHIYQCICTWq0ixuPrtfG4qQMAAMcjBALgpKoqYr2OmE4jUmqO67Wm0AAAcGx2BwPg5KpK6AMAAKdmJhAAAABAAYRAAAAAAAUQAtELdR0xm0WMRs2xrtseEQAAAPSLEIjOq+uIxSJis4nIuTkuFoIgAIASeTgI8HhCIDpvuYzY7a7XdrumDgBAOTwcBHgaIRCdt93uVwcOz1NXALrAw0GApxEC0XmTyX514LA8dQWgKzwcBHgaIRCdt1pFjMfXa+NxUweOz1NXALrCw0GApxEC0XlVFbFeR0ynESk1x/W6qQPH56krAF3h4SDA0wiB6IWqijg/j7i4aI4CIDgdT10B6AoPBwGeRggEwGt56gpAl3g4CPB4QiAAXstTVwAAGAYhEAD38tT1cOo6YjaLGI2ao13WAAA4lWdtDwAASlHXEYvF1W5rm01zHiFYAwDg+MwEAoATWS6vAqBLu11TBwCAYxMCAcCJbLf71QEogHXCwAkJgQDgRCaT/eoADNzlOuHNJiLnq3XCgiDgSIRAAHAiq1XEeHy9Nh43dQAKZJ0wcGJCIAA4kaqKWK8jptOIlJrjeq0pNECxrBMGTkwIBAAnVFUR5+cRFxfNUQBEibRAgY9ZJwycmBAIAICT0QIFXmGdMHBiQiAAAE5GCxR4hXXCwImlnPPJLjafz/PZ2dnJrgcAQLeMRs0MoJtSapZJAgD7Sym9yDnP73udmUAAAJyMFigA0B4hEAAAJ6MFCgC0RwgEAMDJaIECAO0RAtE7tpUFgH6rqojz86YH0Pm5AAgATuVZ2wOAfVxuK3u5q8jltrIRfkACAADA65gJRK/YVhYAAAAeRwhEr2y3+9UBAACAhhCIXrGtLFACvc8AADgGIRC9YltZYOgue59tNhE5X/U+EwQBAPBUQiB6xbaywNDpfQYAwLGknPPJLjafz/PZ2dnJrgcAfTMaNTOAbkqp2U4bAABuSim9yDnP73udmUAA0CF6nwEAcCxCIADoEL3PAAA4FiEQAHSI3mcAABzLs7YHAABcV1VCHwAADs9MIAAAAIACCIGIuo6YzZodaWaz5hwAAAAYFiFQ4eo6YrGI2GyaLYk3m+ZcEAQAAMBezDDoPCFQ4ZbLiN3uem23a+oAAADwIGYY9IIQqHDb7X51APbjgRgAUAQzDHpBCFS4yWS/OgAP54EYAFAMMwx6QQhUuNUqYjy+XhuPmzoAT+OBGABQDDMMekEIVLiqilivI6bTiJSa43rd1AF4Gg/EAIBimGHQC0Igoqoizs8jLi6aowAI4DA8EAMAimGGQS8IgQDgSDwQAwCKYoZB5wmBAOBIPBADAKBLnrU9AAAYsqoS+gAA0A1mAgEAAAAUQAgEAAAAUAAhEAAAAEABhEAAAAAABRACAQAAABRACAQA3KuuI2aziNGoOdZ12yMCAGBftogHAF6rriMWi4jdrjnfbJrziIiqam9cAADsx0wgAOC1lsurAOjSbtfUAQDoDyEQAPBa2+1+dQAAukkIBAC81mSyXx0AgG4SAgEAr7VaRYzH12vjcVMHAKA/hEAAwGtVVcR6HTGdRqTUHNdrTaEBAPrG7mAAwL2qSugDANB3ZgIBAAAAFEAIBAAAAFAAIRAAAABAAYRAAAAAAAUQAgEAAAAUQAgEAAAAUAAhEAAAAEABhEAAAAAABRACAQAAABRACAQAAABQACEQAAAAQAGEQAAAAAAFEAIBAAAAFEAIBAAAAFAAIRAAAABAAYRAwCDUdcRsFjEaNce6bntEAAAA3fKs7QEAPFVdRywWEbtdc77ZNOcREVXV3rgAAAC6xEwgoPeWy6sA6NJu19QBAABoCIGA3ttu96sDAACUSAgE9N5ksl8dAACgREIgoPdWq4jx+HptPG7qAAAANIRAQO9VVcR6HTGdRqTUHNdrTaEBAABeZXcwYBCqSugDAADwOmYCAQAAABRACARA8eo6YjaLGI2aY123PSIAADg8y8EAKFpdRywWEbtdc77ZNOcRlhgCADAsZgIBULTl8ioAurTbNXUAABgSIRAARdtu96sDABTFuvlBEQIBULTJZL86AEAxLtfNbzYROV+tmxcE9ZYQCICirVYR4/H12njc1AHgKUygoPesmx8cIRAARauqiPU6YjqNSKk5rteaQgPwNCZQMAjWzQ9Oyjk//i+n9IMR8V9GxBsR8d/lnP/Y614/n8/z2dnZo68HAADQB7NZE/zcNJ1GnJ+fejTwSN7IvZFSepFznt/3ukfPBEopvRER/3VE/FBEfE9E/GhK6Xse+98DAAAYChMoGATr5gfnKcvBvi8i/nbO+Zdyzl+PiP8hIn7kMMMCAADoLxsPMAjWzQ/OU0KgfyEi/p9Xzr/ycQ0AAKBoJlAwGFXVLP26uGiOAqBee0oIlG6pfaLBUEppkVI6Symdffjhh0+4HAAAQD+YQAF00bMn/N2vRMS/+Mr5b4qIv3vzRTnndUSsI5rG0E+4HgAAQG9UldAH6JanzAT6YkR8d0rpX0op/YaI+Hcj4vOHGRYAAAAAh/TomUA552+klH48Iv7XaLaI/6mc89842MgAAAAAOJinLAeLnPPPRcTPHWgsAAAAABzJU5aDAQAAANATQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEAgAAACgAEIgAAAAgAIIgQAAAAAKIAQCAAAAKIAQbMEH1wAABX1JREFUCAAAAKAAQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEAgAAACgAEIgAAAAgAIIgQAAAAAKIAQCAAAAKIAQCAAAAKAAQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEAgAAACgAEIgAAAAgAIIgQAAAAAKIAQCAAAAKIAQCAAAAKAAQiAAAACAAgiBAAAAAAogBAIAAAAogBAIAAAAoABCIAAAAIACCIEAAAAACiAEAgAAACiAEAgAAACgACnnfLqLpfRhRGxOdsHj+Y6I+LW2BwGv4T1K13mP0nXeo3Sd9yhd5z1K1w3tPTrNOb9934tOGgINRUrpLOc8b3sccBfvUbrOe5Su8x6l67xH6TrvUbqu1Peo5WAAAPD/t3c/oVqUURzHvz/8Q2GBSn8QNfpDiyDCIiIoQqKi2lhQkRDYqhYFRpuiTRYEERXtjCLBoDJJK5e5MKqNmaZpSWUhZYoSInU3RXlavI+gdu/tGugMzPcDl3fmeefCWRwOM4d5zitJ0gDYBJIkSZIkSRoAm0D/z2tdByD9B3NUfWeOqu/MUfWdOaq+M0fVd4PMUWcCSZIkSZIkDYBvAkmSJEmSJA2ATaBTkOT2JN8m2ZPkya7jkcaTZG+SnUm2J/mi63ikJKuSHEqy67i1uUk2Jvm+fc7pMkYN2wQ5uiLJL62Wbk9yZ5cxariSLEyyKcnuJF8nWd7WraPqhUly1Dqq3khyVpLPk+xoefpMW78kyeZWS99NMrPrWE83t4NNUZJpwHfArcA+YAuwtKq+6TQw6SRJ9gLXVtWvXcciASS5CRgD3qyqK9vaC8Dhqnq+NdXnVNUTXcap4ZogR1cAY1X1YpexSUnmAfOqaluSc4GtwF3Ag1hH1QOT5Oh9WEfVE0kCzKqqsSQzgM+A5cDjwPqqWpPkVWBHVa3sMtbTzTeBpu46YE9V/VhVfwJrgCUdxyRJvVdVnwCHT1peAqxux6sZ3SxKnZggR6VeqKoDVbWtHf8O7AbmYx1VT0ySo1Jv1MhYO53R/gq4GXivrQ+iltoEmrr5wM/Hne/D4qZ+KuCjJFuTPNR1MNIELqyqAzC6eQQu6DgeaTyPJvmqbRdzq406l+Ri4GpgM9ZR9dBJOQrWUfVIkmlJtgOHgI3AD8CRqvqrXTKIZ3ybQFOXcdbcS6c+uqGqrgHuAB5p2xwkSadmJXAZsAg4ALzUbTgauiTnAOuAx6rqt67jkU42To5aR9UrVfV3VS0CFjDa6XPFeJed2ajOPJtAU7cPWHjc+QJgf0exSBOqqv3t8xDwPqMCJ/XNwTZD4NgsgUMdxyOdoKoOtpvFo8DrWEvVoTa/Yh3wVlWtb8vWUfXGeDlqHVVfVdUR4GPgemB2kuntq0E849sEmrotwOVtevhM4H5gQ8cxSSdIMqsN5CPJLOA2YNfk/yV1YgOwrB0vAz7sMBbpX449XDd3Yy1VR9ow0zeA3VX18nFfWUfVCxPlqHVUfZLk/CSz2/HZwC2M5ldtAu5plw2ilvrrYKeg/azhK8A0YFVVPddxSNIJklzK6O0fgOnA2+apupbkHWAxcB5wEHga+ABYC1wE/ATcW1UO5lUnJsjRxYy2MBSwF3j42PwV6UxKciPwKbATONqWn2I0c8U6qs5NkqNLsY6qJ5JcxWjw8zRGL8Osrapn2/PTGmAu8CXwQFX90V2kp59NIEmSJEmSpAFwO5gkSZIkSdIA2ASSJEmSJEkaAJtAkiRJkiRJA2ATSJIkSZIkaQBsAkmSJEmSJA2ATSBJkiRJkqQBsAkkSZIkSZI0ADaBJEmSJEmSBuAfWXBsdPP5PeEAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1440x1440 with 1 Axes>"
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
<<<<<<< HEAD
    "fig,axe = plt.subplots(figsize=(6,6))\n",
    "axe.set_title(\"k-means\")\n",
    "axe.set_xlim(0,60)\n",
    "axe.set_ylim(0,60)\n",
=======
    "fig,axe = plt.subplots(figsize=(10,10))\n",
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
    "# axe.scatter(centers[0],centers[1],marker=\"*\",s=100)\n",
    "for center in centers:\n",
    "    print(center)\n",
    "    axe.scatter(centers[center][0],centers[center][1],marker=\"x\",s=100)\n",
    "colors = ['r','g','b','y','c','m']\n",
    "mk = ['o','+','*']\n",
    "for i in clusters:\n",
    "    for point in clusters[i]:\n",
<<<<<<< HEAD
    "        axe.scatter(point[0],point[1],c=colors[i],marker=mk[i],s=30)"
=======
    "        axe.scatter(point[0],point[1],c=colors[i])\n",
    "axe.set_title(\"k-means\")"
>>>>>>> 062e468d4b20e690f6c11c5351c7eabc52ada730
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "b3ba2566441a7c06988d0923437866b63cedc61552a5af99d1f4fb67d367b25f"
  },
  "kernelspec": {
   "display_name": "Python 3.7.0 64-bit ('base': conda)",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
